// var i;
// var AL_GAME_HUA_i18nLabel = require("./AL_GAME_HUA_i18nLabel");
// var c = cc._decorator;
// var l = c.ccclass;
// var u = c.property;
// var p =
//     (c.menu,
//     (function (e) {
//         function t() {
//             var t = (null !== e && e.apply(this, arguments)) || this;
//             t.label_ele = null;
//             t.mask = null;
//             return t;
//         }
//         __extends(t, e);
//         t.prototype.onLoad = function () {};
//         t.prototype.start = function () {};
//         t.prototype.zhixing_chushihua_chuli = function (e) {
//             var t = this;
//             var n = e.node;
//             var o = e.str;
//             this.label_ele.getComponent(AL_GAME_HUA_i18nLabel.i18nLabel).string = o;
//             this.mask.active = !1;
//             this.scheduleOnce(function () {
//                 t.mask.active = !0;
//                 var e = n.convertToWorldSpaceAR(cc.v2(0, 0));
//                 var o = t.node.convertToNodeSpaceAR(e);
//                 t.mask.setPosition(o);
//                 t.mask.width = t.mask.height = Math.max(t.mask.width, n.width);
//                 t.mask.getChildByName("bg").getComponent(cc.Widget).updateAlignment();
//             });
//             this.node.on(
//                 cc.Node.EventType.TOUCH_END,
//                 function () {
//                     t.node.destroy();
//                 },
//                 this
//             );
//             this.node._touchListener.setSwallowTouches(!1);
//         };
//         __decorate([u(cc.Label)], t.prototype, "label_ele", void 0);
//         __decorate([u(cc.Node)], t.prototype, "mask", void 0);
//         return __decorate([l], t);
//     })(cc.Component));
// exports.default = p;


// 引入用于国际化标签的模块
const AL_GAME_HUA_i18nLabel = require("./AL_GAME_HUA_i18nLabel");

// 使用Cocos Creator的装饰器
const { ccclass, property } = cc._decorator;

/**
 * @class CustomComponent
 * @extends {cc.Component}
 * 这个类用于处理节点的初始化和销毁逻辑
 */
@ccclass
class CustomComponent extends cc.Component {
    // 国际化标签组件
    @property(cc.Label) label_ele = null;
    // 用于显示遮罩的节点
    @property(cc.Node) mask = null;

    /**
     * 当组件首次加载时调用
     * 任何需要初始化的数据应在这里设置
     */
    onLoad() {
        // 初始化逻辑
    }

    /**
     * 当组件启用时调用
     * 用于处理组件的启动逻辑
     */
    start() {
        // 启动逻辑
    }

    /**
     * 用于初始化组件的自定义方法
     * @param {Object} data 包含节点和字符串属性的对象
     * @param {cc.Node} data.node 传入的节点
     * @param {string} data.str 需要显示的字符串
     */
    zhixing_chushihua_chuli(data) {
        // 使用箭头函数绑定当前上下文
        const updatePositionAndMask = () => {
            // 激活遮罩
            this.mask.active = true;

            // 将传入节点的坐标转换为世界坐标
            const worldPosition = data.node.convertToWorldSpaceAR(cc.v2(0, 0));

            // 将世界坐标转换为当前节点的局部坐标
            const localPosition = this.node.convertToNodeSpaceAR(worldPosition);

            // 设置遮罩的位置
            this.mask.setPosition(localPosition);

            // 更新遮罩的宽高，以适应节点的大小
            this.mask.width = this.mask.height = Math.max(this.mask.width, data.node.width);

            // 更新背景部件的对齐方式
            this.mask.getChildByName("bg").getComponent(cc.Widget).updateAlignment();
        };

        // 初始化标签组件的字符串
        this.label_ele.getComponent(AL_GAME_HUA_i18nLabel.i18nLabel).string = data.str;

        // 初始设定遮罩为非激活状态
        this.mask.active = false;

        // 使用 scheduleOnce 调度一次性事件
        this.scheduleOnce(updatePositionAndMask);

        // 为节点添加触摸结束事件监听
        this.node.on(cc.Node.EventType.TOUCH_END, () => {
            // 销毁当前节点
            this.node.destroy();
        }, this);

        // 设置触摸事件的吞噬设置
        this.node._touchListener.setSwallowTouches(false);
    }
}

// 导出默认类
exports.default = CustomComponent;